/* 
  思路：
    1. 读取歌词文件
    2. 提取出所有的 时间和歌词
    3. 配合延时器 setTimeout 打印歌词
    4. 需要把提取到的时间转成毫秒值
*/
// 导入模块
const fs = require('fs');
const path = require('path');
// 把正常的时间转成毫秒
function toNumber(time) {
    // 正则判断时间并分组
    const reg = /(\d{2}):(\d{2})\.(\d{2})/
    // 把分组的解构
    const [, m, s, ms] = reg.exec(time)
    // 返回毫秒数给延时器
    return m * 60 * 1000 + s * 1000 + ms * 10
    // 一分钟等于60秒*1000等于毫秒
    // 1秒*1000等于1000毫秒
    // 毫秒是三位数要*10
}
fs.readFile(path.join(__dirname, '演员 - 薛之谦.lrc'), 'utf-8', function (err, data) {
    if (err) return console.log('读取失败', err);
    // 创建正则规则，并且分两组
    const reg = /\[(\d{2}:\d{2}\.\d{2})\](.*)\r\n/g;
    let result;
    while (true) {
        // 把数据按照reg规则提取到result
        result = reg.exec(data);
        // result提取不到了，就没值了，没值了就退出循环
        if (!result) {
            break;
        }
        // 解构result
        const [, time, text] = result;
        setTimeout(() => {
            // 按照传过来的毫秒数打印歌词
            console.log(text);
        }, toNumber(time))
    }
})